#include "comm.hpp"

// 使用共享内存
int main()
{
    // 创建相同的key值
    key_t key = CreateKey();

    // 获取共享内存
    int shmid = shmget(key, MEM_SIZE, IPC_CREAT);
    if (shmid <= 0)
    {
        perror("shmid");
        return 1;
    }

    // 关联共享内存
    char *str = static_cast<char *>(shmat(shmid, nullptr, 0));
    if (str == reinterpret_cast<char *>(-1))
    {
        perror("shmat");
        return 1;
    }

    // 使用共享内存
    while (true)
    {
        printf("Please Enter# ");
        fflush(stdout);
        ssize_t s = read(0, str, MEM_SIZE);
        if (s > 0)
            str[s] = '\0';
    }

    // 解除共享内存关联
    if (shmdt(str) == -1)
    {
        perror("shmdt");
        return 1;
    }
    return 0;
}